#ifndef parser_hpp
#define parser_hpp

#define FUNC_START 1
#define FUNC_EXIT 2
#define FUNC_MESSAGE 3

#include <string>
#include <vector>

class cFunc
{
    public:
        int id;
        std::vector <std::string> arg;

        cFunc(int i, std::vector <std::string> a)
        {
            id = i;
            arg = a;
        }
};

class cParser
{
    private:
        std::string * questContent;//zawartosc textowa questa
        int qPointer;//wskaznik na miejsce w stringu ktore rozpatrujemy
        std::vector <cFunc> fList;//lista funkcji

        void loadQuest(const char * name);//laduje questa z pliku
        const char * readFunctionName();//wczyttuje nazwe funkcji
        int nameToID(std::string name);//zwraca id do nazwy funkcji
        std::vector <std::string> readArguments(int c);//wczytuje argumenty
        void skipWhitespaces();//pomija biale znaki
        bool isEndOfParse();//zwraca nam czy juz koneic parsowania

	public:
        void parse(const char * filename);//parsuje quest
};

#endif
